// @ts-ignore
/* eslint-disable */
import request from '@/request'

/** 上传用户头像 上传并更新用户的头像图片 POST /api/user/changeAvatar */
export async function uploadAvatarUsingPost1(file: File, options?: { [key: string]: any }) {
  const formData = new FormData()
  formData.append('file', file)

  return request<API.Result>('/api/user/changeAvatar', {
    method: 'POST',
    data: formData,
    requestType: 'form',
    ...(options || {}),
  })
}

/** 获取当前登录用户 获取当前登录用户的详细信息 GET /api/user/current */
export async function getCurrentUserUsingGet1(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.getCurrentUserUsingGET1Params,
  options?: { [key: string]: any }
) {
  return request<API.ResultLoginUserVO_>('/api/user/current', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 用户登录 使用账号密码登录系统 POST /api/user/login */
export async function userLoginUsingPost1(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.userLoginUsingPOST1Params,
  body: API.UserLoginDTO,
  options?: { [key: string]: any }
) {
  return request<API.ResultLoginUserVO_>('/api/user/login', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    params: {
      ...params,
    },
    data: body,
    ...(options || {}),
  })
}

/** 退出登录 清除用户登录状态 POST /api/user/logout */
export async function userLogoutUsingPost1(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.userLogoutUsingPOST1Params,
  options?: { [key: string]: any }
) {
  return request<API.ResultBoolean_>('/api/user/logout', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 用户注册 注册新用户，需要提供账号和密码 POST /api/user/register */
export async function userRegisterUsingPost1(
  body: API.UserRegisterDTO,
  options?: { [key: string]: any }
) {
  return request<API.ResultLong_>('/api/user/register', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 修改用户名称 修改用户的显示名称 POST /api/user/updateName */
export async function updateUserNameUsingPost1(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.updateUserNameUsingPOST1Params,
  options?: { [key: string]: any }
) {
  return request<API.Result>('/api/user/updateName', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 修改密码 修改用户登录密码，需要提供旧密码和新密码 POST /api/user/updatePassword */
export async function updatePasswordUsingPost1(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.updatePasswordUsingPOST1Params,
  options?: { [key: string]: any }
) {
  return request<API.Result>('/api/user/updatePassword', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 修改用户简介 修改用户的个人简介信息 POST /api/user/updateProfile */
export async function updateUserProfileUsingPost1(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.updateUserProfileUsingPOST1Params,
  options?: { [key: string]: any }
) {
  return request<API.Result>('/api/user/updateProfile', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 获取用户统计信息 获取用户的图片、空间和活动统计信息 GET /api/user/statistics */
export async function getUserStatisticsUsingGet1(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.getUserStatisticsUsingGET1Params,
  options?: { [key: string]: any }
) {
  return request<API.ResultUserStatisticsVO_>('/api/user/statistics', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 获取用户邮箱 获取当前用户绑定的邮箱地址 GET /api/user/email */
export async function getUserEmailUsingGet1(options?: { [key: string]: any }) {
  return request<API.Result>('/api/user/getUserEmail', {
    method: 'GET',
    ...(options || {}),
  })
}

/** 更新用户邮箱 更新用户绑定的邮箱地址 POST /api/user/updateEmail */
export async function updateUserEmailUsingPost1(
  params: {
    /** 新邮箱地址 */
    email: string
  },
  options?: { [key: string]: any }
) {
  return request<API.Result>('/api/user/updateUserEmail', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 销毁用户 销毁指定用户 POST /api/user/destroy/{userId} */
export async function destroyUserUsingPost(
  params: {
    /** 用户ID */
    userId: number
  },
  options?: { [key: string]: any }
) {
  return request<API.Result>(`/api/user/destroy/${params.userId}`, {
    method: 'POST',
    ...(options || {}),
  })
}

/** 用户签到 用户每日签到 POST /api/user/checkin */
export async function userCheckinUsingPost(options?: { [key: string]: any }) {
  return request<API.Result>('/api/user/checkin', {
    method: 'POST',
    ...(options || {}),
  })
}

/** 获取用户签到信息 获取用户签到统计和记录 GET /api/user/checkin/info */
export async function getUserCheckinInfoUsingGet(options?: { [key: string]: any }) {
  return request<API.Result>('/api/user/checkin/info', {
    method: 'GET',
    ...(options || {}),
  })
}

/** 获取用户签到记录 获取用户历史签到记录 GET /api/user/checkin/records */
export async function getUserCheckinRecordsUsingGet(
  params: {
    page?: number
    pageSize?: number
    startDate?: string
    endDate?: string
  },
  options?: { [key: string]: any }
) {
  return request<API.Result>('/api/user/checkin/records', {
    method: 'GET',
    params: { ...params },
    ...(options || {}),
  })
}

/** 获取签到奖励配置 获取签到奖励规则 GET /api/user/checkin/rewards */
export async function getCheckinRewardsUsingGet(options?: { [key: string]: any }) {
  return request<API.Result>('/api/user/checkin/rewards', {
    method: 'GET',
    ...(options || {}),
  })
}

/** 用户提交反馈 用户提交问题反馈 POST /api/user/feedback/submit */
export async function submitUserFeedback(
  body: {
    type?: string
    description?: string
    contact?: string
  },
  options?: { [key: string]: any }
) {
  return request<API.Result>('/api/user/feedback/submit', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}
